Descrizione |
---|
Taglia cerchi o archi in più archi. Gli archi creati possono essere colorati alternativamente per distinguerli. (Riga di comando, incolla la macro completa nella console Python). Versione macro: 00.03 Ultima modifica: 2019-07-02 Download: ToolBar Icon Autore: mario52 |
Autore |
mario52 |
Download |
ToolBar Icon |
Link |
Raccolta di macro Come installare le macro Personalizzare la toolbar |
Versione macro |
00.03 |
Data ultima modifica |
2019-07-02 |
Versioni di FreeCAD |
None |
Scorciatoia |
Nessuna |
Vedere anche |
Nessuno |
Questa macro taglia cerchi o archi in più archi. Gli archi creati possono essere colorati alternativamente per distinguerli.
CutCircle
cutCircle()
con 1 o 2 argomenti dalla console Python:
cutCircle(4)
. Questo creerà 4 nuovi archi per ogni cerchio o arco selezionato e si fermerà lì (nessuna colorazione).cutCircle(6, 1)
. Questo creerà 6 nuovi archi per ciascun cerchio o arco selezionato, colorati alternativamente in rosso e bianco come mostrato nell'immagine.Icona della barra degli strumenti
Macro_Cut_Circle.FCMacro
# selection circle(s) (circles and arcs) # give number of cut, biColor 0/1 # cut the circle to x arcs # if biColor is <> 0 the arcs are colored alternately Red White Red White .... # __title__ = "cutCircle" __author__ = "Mario52" __date__ = "02/07/2019" __version__ = "00.03" import Draft global biscolor ; biscolor = 0 def cutCircle(number = 2, biColor = 0): global biscolor def defbiColor(objet): global biscolor if biscolor == 0: FreeCADGui.ActiveDocument.getObject(objet.Name).LineColor = (1.0,0.0,0.0) # 255 = 1 (10 = (1/255 * 10 )) biscolor = 1 else: FreeCADGui.ActiveDocument.getObject(objet.Name).LineColor = (1.0,1.0,1.0) # 255 = 1 (10 = (1/255 * 10 )) biscolor = 0 selection = FreeCADGui.Selection.getSelection() for piece in selection: nom = piece.Name if (nom[:6] == "Circle") or (nom[:8] == "Cylinder"): circonference = piece.Shape.Length rayon = piece.Radius placem = piece.Placement if (nom[:8] == "Cylinder"): pivot0 = float(piece.Angle/number) FreeCAD.Console.PrintMessage("Cylinder"+"\n") else: pivot0 = float(360/number) FreeCAD.Console.PrintMessage("Circle"+"\n") pivot1 = 0.0 for i in range(number): cercle = Draft.makeCircle(radius=rayon,placement=placem,face=False,startangle=(pivot1),endangle=(pivot0+pivot1),support=None) if biColor != 0: defbiColor(cercle) pivot1 += pivot0 elif nom[:3] == "Arc": FreeCAD.Console.PrintMessage("Arc"+"\n") circonference = piece.Shape.Length rayon = piece.Radius placem = piece.Placement First = float(piece.FirstAngle) Last = float(piece.LastAngle) pivot0 = abs((First - Last) / number) pivot1 = 0.0 for i in range(number): cercle = Draft.makeCircle(radius=rayon,placement=placem,face=False,startangle=(pivot1+First),endangle=(pivot0+pivot1+First),support=None) if biColor != 0: defbiColor(cercle) pivot1 += pivot0 App.ActiveDocument.recompute() #cutCircle(5, 1) # here with 5 arcs and colored #cutCircle(4) #
cutCircle(5, 1) # here with 5 arcs and colored
cutCircle(4) #
Tagliare il cerchio in cilindro
ver 00.03 02/07/2019 : aggiunto "App.ActiveDocument.recompute()"
ver 00.02 03/09/2015 : aggiunta la creazione di archi colorati alternativamente Rosso Bianco Rosso Bianco .... oppure no
ver 00.01 24/02/2015 :